package progetto1.csm.core.actor;

import progetto1.csm.core.SystemElement;
import sde.actor.Message;

public interface WatcherIF {
	
	public static abstract class WatcherMessage extends Message{
		
		private Client c;
		
		private SystemElement se;

		public Client getClient() {
			return c;
		}

		public void setClient(Client c) {
			this.c = c;
		}

		public SystemElement getSystemElement() {
			return se;
		}

		public void setSystemElement(SystemElement se) {
			this.se = se;
		}

		public WatcherMessage(Client c, SystemElement se) {
			super();
			this.c = c;
			this.se = se;
		}
	}
	
	public static class Enter extends WatcherMessage{

		public Enter(Client c, SystemElement se) {
			super(c, se);
		}
	}
	
	public static class Exit extends WatcherMessage{

		public Exit(Client c, SystemElement se) {
			super(c, se);
		}
	}
	
	public static class Idle extends Message{
		
		private SystemElement se;
		
		public void setSystemElement(SystemElement se){
			this.se=se;
		}
		
		public SystemElement getSystemElement(){
			return se;
		}
		
		public Idle(SystemElement se) {
			this.se=se;
		}		
	}
	
}
